The present disclosure generally relates to software development and, more particularly, relates to adaptive dynamic code analysis using historical data.
Code analysis and defect prevention are useful activities in any software project. The purpose of defect prevention is to identify the cause of defects and prevent them from recurring. Defect prevention involves analyzing defects that were encountered in the past and taking specific actions to prevent the occurrence of those types of defects in the future.
Currently, static code analyzers are used to provide a minimum quality of the code delivered based on predefined rules. Those rules force the developer to follow a coding standard and prevent basic errors. On the other hand, manual code reviews are also useful to prevent potential defects that a software developer could detect before the delivery of the change set. Manual code reviews are helpful for detecting points of improvement in terms or quality, performance, and security.
In some cases, similar software defects may be repeated across different development projects by different software developers. Even the same software engineer could repeat the same type of defect over time. Since code reviews are currently conducted by other software developers as reviewers, the reviewers may also inadvertently miss potential defects or opportunities to improve the quality of the code. Also, the feedback that the reviewers provide depends on the individual knowledge and experience of each reviewer. Moreover, different reviewers have different styles and focus on different aspects of the code quality.